Levels of Testing

By Chris Oxley

I am of the opinion that a development team should be responsible for the majority of the testing of their system. The development team may contain BAs, QAs, technical testers and developers.

I will concentrate on what I would expect a development team to produce during the development of a reasonably sized system. I do believe that if something is worth testing then it should be automated. Continuous Integration (CI) is a very important and useful tool to aid the automation of the test cycles and I would expect that most automated tests should be started via CI. Best endeavours should be made to make sure all tests can be run locally, but not necessarily part of the main build of the application.

The following table shows different levels of testing, whether they should be run as part of the main build or part of a downstream build and how important it is for them to run locally.

Testing Levels

In summary:

  • The main build should contain the following levels of testing: Unit, Integration and Component. It is VERY IMPORTANT that the main build should run quickly (max<5mins). This should be taken into consideration when producing the slower Integration and Component tests.

  • Downstream builds of the main build should contain the following levels of testing: Application, System, Fault tolerant and Performance.

Visual definition:

Pictorial Testing Levels

Happy testing.